package br.com.toscano.gobra.business;

import javax.inject.Inject;

import br.gov.frameworkdemoiselle.stereotype.BusinessController;
import br.gov.frameworkdemoiselle.template.DelegateCrud;
import br.gov.frameworkdemoiselle.util.ResourceBundle;

import br.com.toscano.automacao.constant.ConstantesMensagem;
import br.com.toscano.automacao.exception.DescricaoException;
import br.com.toscano.gobra.domain.ProjetoAtividade;
import br.com.toscano.gobra.domain.ProjetoAtividade;
import br.com.toscano.gobra.domain.ProjetoAtividade;
import br.com.toscano.gobra.persistence.ProjetoAtividadeDAO;

@BusinessController
public class ProjetoAtividadeBC extends AbstractBC<ProjetoAtividade, Long, ProjetoAtividadeDAO> {
	
	private static final long serialVersionUID = 1L;
	
	@Inject
	private ResourceBundle bundle;

	@Override
	public ProjetoAtividade insert(ProjetoAtividade bean) {
		ProjetoAtividade ProjetoAtividade = this.getDelegate().consultarPorDescricao("codigo" , bean.getCodigo());
		if (ProjetoAtividade != null) {
			throw new DescricaoException(bundle.getString(ConstantesMensagem.MSG_ERRO_DESCRICAO_JA_USADA, "Código"));
		} else {
			return super.insert(bean);
		}
	}

	@Override
	public ProjetoAtividade update(ProjetoAtividade bean) {
		ProjetoAtividade ProjetoAtividade = this.getDelegate().consultarPorDescricao("codigo" , bean.getCodigo());
		if (ProjetoAtividade != null  && !ProjetoAtividade.getKey().equals(bean.getKey())) {
			throw new DescricaoException(bundle.getString(ConstantesMensagem.MSG_ERRO_DESCRICAO_JA_USADA, "Código"));
		} else {
			return super.update(bean);
		}
	}

}
